1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.cache;
18
19 import static org.easymock.EasyMock.createMock;
20 import static org.easymock.EasyMock.expect;
21 import static org.easymock.EasyMock.replay;
22 import static org.easymock.EasyMock.verify;
23
24 import com.google.common.collect.ImmutableList;
25 import com.google.common.collect.ImmutableMap;
26
27 import junit.framework.TestCase;
28
29 import java.util.concurrent.ExecutionException;
30
31
32
33
34
35
36 public class ForwardingLoadingCacheTest extends TestCase {
37 private LoadingCache<String, Boolean> forward;
38 private LoadingCache<String, Boolean> mock;
39
40 @SuppressWarnings("unchecked")
41 @Override public void setUp() throws Exception {
42 super.setUp();
43
44
45
46
47
48 mock = createMock(LoadingCache.class);
49 forward = new ForwardingLoadingCache<String, Boolean>() {
50 @Override protected LoadingCache<String, Boolean> delegate() {
51 return mock;
52 }
53 };
54 }
55
56 public void testGet() throws ExecutionException {
57 expect(mock.get("key")).andReturn(Boolean.TRUE);
58 replay(mock);
59 assertSame(Boolean.TRUE, forward.get("key"));
60 verify(mock);
61 }
62
63 public void testGetUnchecked() {
64 expect(mock.getUnchecked("key")).andReturn(Boolean.TRUE);
65 replay(mock);
66 assertSame(Boolean.TRUE, forward.getUnchecked("key"));
67 verify(mock);
68 }
69
70 public void testGetAll() throws ExecutionException {
71 expect(mock.getAll(ImmutableList.of("key"))).andReturn(ImmutableMap.of("key", Boolean.TRUE));
72 replay(mock);
73 assertEquals(ImmutableMap.of("key", Boolean.TRUE), forward.getAll(ImmutableList.of("key")));
74 verify(mock);
75 }
76
77 public void testApply() {
78 expect(mock.apply("key")).andReturn(Boolean.TRUE);
79 replay(mock);
80 assertSame(Boolean.TRUE, forward.apply("key"));
81 verify(mock);
82 }
83
84 public void testInvalidate() {
85 mock.invalidate("key");
86 replay(mock);
87 forward.invalidate("key");
88 verify(mock);
89 }
90
91 public void testRefresh() throws ExecutionException {
92 mock.refresh("key");
93 replay(mock);
94 forward.refresh("key");
95 verify(mock);
96 }
97
98 public void testInvalidateAll() {
99 mock.invalidateAll();
100 replay(mock);
101 forward.invalidateAll();
102 verify(mock);
103 }
104
105 public void testSize() {
106 expect(mock.size()).andReturn(0L);
107 replay(mock);
108 forward.size();
109 verify(mock);
110 }
111
112 public void testStats() {
113 expect(mock.stats()).andReturn(null);
114 replay(mock);
115 assertNull(forward.stats());
116 verify(mock);
117 }
118
119 public void testAsMap() {
120 expect(mock.asMap()).andReturn(null);
121 replay(mock);
122 assertNull(forward.asMap());
123 verify(mock);
124 }
125
126 public void testCleanUp() {
127 mock.cleanUp();
128 replay(mock);
129 forward.cleanUp();
130 verify(mock);
131 }
132
133
134
135
136 private static class OnlyGet<K, V> extends ForwardingLoadingCache<K, V> {
137 @Override
138 protected LoadingCache<K, V> delegate() {
139 return null;
140 }
141 }
142 }